Inicio / Git / Bases de Git / Remotos: push, pull y fetch (Teórico)
Teoría

Remotos: push, pull y fetch

Teórico — Conecta tu repositorio local con el mundo exterior: sincroniza código con GitHub, GitLab o cualquier servidor remoto.

01 ¿Qué es un repositorio remoto?

Un remoto (remote) es una copia de tu repositorio que vive en otro lugar — normalmente en un servidor como GitHub, GitLab o Bitbucket. Es lo que permite que varias personas trabajen en el mismo proyecto.

Local

Tu copia del repositorio, en tu computadora. Aquí haces commits, creas ramas, y trabajas.

Remoto

La copia en el servidor. Sirve como respaldo, punto central para el equipo, y para compartir código.

Analogía: Tu local es como un cuaderno personal. El remoto es como un Google Drive compartido. Trabajas en tu cuaderno y cuando quieres que otros vean tus cambios, los subes (push). Cuando quieres ver qué hicieron otros, los bajas (pull).

02 origin — El remoto principal

Cuando clonas un repositorio con git clone, Git automáticamente configura un remoto llamado origin que apunta al URL original. Es una convención — puedes tener varios remotos con diferentes nombres.

Administrar remotos

Terminal
# Ver los remotos configurados
git remote -v

# Agregar un remoto manualmente
git remote add origin https://github.com/tu-usuario/tu-repo.git

# Cambiar el URL de un remoto
git remote set-url origin https://github.com/tu-usuario/nuevo-repo.git

# Eliminar un remoto
git remote remove origin

03 git push — Subir cambios

git push envía tus commits locales al repositorio remoto. Los demás miembros del equipo podrán ver tus cambios después del push.

Sintaxis de git push

Terminal
# Push básico (la rama actual al remoto origin)
git push origin main

# Después del primer push, puedes hacer solo:
git push

# Push de una rama feature
git push origin feature/login

# Primer push de una rama nueva (configura tracking)
git push -u origin feature/login
El flag -u (o --set-upstream) vincula tu rama local con la rama remota. Después de usarlo una vez, solo necesitas escribir git push sin especificar el remoto y la rama.

04 git pull — Bajar y fusionar

git pull descarga los cambios del remoto y los fusiona automáticamente con tu rama local. Es la forma más común de actualizar tu código.

Sintaxis de git pull

Terminal
# Pull básico (descarga + merge)
git pull origin main

# Si ya tienes tracking configurado:
git pull

# Pull con rebase (reorganiza commits en lugar de merge)
git pull --rebase
Importante: git pull puede causar conflictos si tú y alguien más modificaron las mismas líneas. Se resuelven igual que los conflictos de merge: editar, git add, y git commit.

05 git fetch — Descargar sin fusionar

git fetch descarga los cambios del remoto pero no los fusiona. Te permite ver qué hay de nuevo antes de decidir si integrarlos.

fetch vs pull

Terminal
# Descargar sin fusionar
git fetch origin

# Ver qué cambió en el remoto
git log HEAD..origin/main --oneline

# Si te convence, fusiona manualmente
git merge origin/main
git fetch

Descarga cambios. No modifica tu código local. Es seguro — puedes revisar antes de fusionar.

git pull

Descarga + merge automático. Modifica tu código. Más rápido pero puede causar conflictos inesperados.

06 Flujo completo de trabajo con remotos

Ciclo diario de trabajo

Terminal
# 1. Antes de empezar a trabajar, actualizar
git pull origin main

# 2. Crear una rama para tu tarea
git checkout -b feature/nueva-funcionalidad

# 3. Trabajar: editar, add, commit (varias veces)
git add .
git commit -m "Implementa nueva funcionalidad"

# 4. Subir tu rama al remoto
git push -u origin feature/nueva-funcionalidad

# 5. Crear un Pull Request en GitHub (web)
# 6. Después del merge en GitHub, actualizar local
git checkout main
git pull origin main

Cuestionario de evaluación

Demuestra que entiendes cómo funcionan los remotos en Git.

1. ¿Qué es origin en Git?

2. ¿Qué hace git push?

3. ¿Cuál es la diferencia entre fetch y pull?

4. ¿Para qué sirve el flag -u en git push -u?

5. ¿Cuál es el primer paso recomendado antes de empezar a trabajar cada día?